package visitor_pattern;

import lombok.Builder;

/**
 * @author 申书航
 * @version 1.0
 *
 * 表示一个商品的类，包含商品的基本信息和访问者模式的方法。
 */
@Builder
public class Item implements IVisitable {

    private String name;

    private int price;

    private int number;

    /**
     * 接受访问者的访问，并调用访问者的相应方法。
     *
     * @param visitor 访问者接口的实现
     */
    @Override
    public void accept(IVisitor visitor) {
        visitor.visit(this);
    }

    /**
     * 显示商品的信息，包括名称、数量和总价。
     */
    public void showInfo() {
        System.out.println(name + "\tx" + number + " \t\t" + number * price);
    }
}
